前些日子由于工作需要需要将pdf文件变小,市面上不少软件都有这个功能,但都不属于免费功能。此外部分网站提供免费的在线压缩功能,但是考虑到文件比较重要,使用在线压缩存在文件泄漏风险,所以萌发了自己写一个基于html页面压缩pdf大小页面的念头。
在不借助软件和工具的情况下,我能想到压缩方案是将pdf每一页截图然后通过调整图片像素的方法,来实现pdf压缩,而该过程也是我后面实现的思路。网上搜索场景的pdf压缩方案是基于jspdf.js将canvas转成图片生成pdf文件,通过调整生成图片时候的尺寸来实现pdf文件大小调整的功能。
将整个任务分解,可以分为两个部分:
1.将pdf展示在页面上;
2.将页面上展示的pdf压缩大小重新生成pdf;
通过一番搜索,第一步选定借助pdf.js来展示页面,由于本人前端水平有限,最终页面整个采用pdfjs在github上的模板(Getting Started (mozilla.github.io))。该样例页面提供了pdf在线预览、打印、下载等功能,同时支持在线预览调整页面比例,完美的匹配了第一步的要求,由于浏览器支持问题,我选择的是pdfjs-2.10.377-legacy-dist版本。
第二步是在页面中引入jspdf,来实现将canvas标签转化为pdf文件。由于jspdf在github上的最新源码ES6模块部署,这